;; change by growing at the end. It only appends the new output,
;; instead of reverting the entire buffer. It does so even if the
;; buffer contains unsaved changes. (Because they will not be lost.)
+;; Auto Revert Tail Mode works also for remote files.
;; Usage:
;;
(let* ((buffer (current-buffer)) size
(revert
(or (and buffer-file-name
- (not (file-remote-p buffer-file-name))
(file-readable-p buffer-file-name)
(if auto-revert-tail-mode
- (/= auto-revert-tail-pos
- (setq size
- (nth 7 (file-attributes buffer-file-name))))
- (not (verify-visited-file-modtime buffer))))
+ ;; Tramp caches the file attributes. Setting
+ ;; `tramp-cache-inhibit' forces Tramp to
+ ;; reread the values.
+ (let ((tramp-cache-inhibit-cache t))
+ (/= auto-revert-tail-pos
+ (setq size
+ (nth 7 (file-attributes
+ buffer-file-name)))))
+ (and (not (file-remote-p buffer-file-name))
+ (not (verify-visited-file-modtime buffer)))))
(and (or auto-revert-mode
global-auto-revert-non-file-buffers)
revert-buffer-function
(when (or revert auto-revert-check-vc-info)
(vc-find-file-hook)))))
-(defun auto-revert-tail-handler (size)
+(defun auto-revert-tail-handler (size)
(let ((modified (buffer-modified-p))
(inhibit-read-only t) ; Ignore.
(file buffer-file-name)